#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <time.h>

int x,y;
    char tecla;

typedef struct space{
        
      void movimentar_direita ();
      int movimentar_esquerda();
      int teclas ();
      int atira ();  
      };
      
void space::movimentar_direita (){
        if (x==30 ){
                   gotoxy(30,y);
                   printf("x");
}        else{
                 gotoxy(x,y);
                 printf(" ");
                 x++;
                 gotoxy(x,y);
                 printf("x");
                 }                 
}

int space::movimentar_esquerda (){
        if (x==1){
                   gotoxy(1,y);
                   printf("x");        
}                
                   else{
                 
                 gotoxy(x,y);
                 printf(" ");
                 x--;
                 gotoxy(x,y);
                 printf("x");
                 }
}        

void invaders (){
     
     char c,d,e,f;
     
     e=3;
     f=7;
     
     for(c=3;c<30;c=c+3){
     for (d=2;d<29;d=d+4){
         gotoxy(c,e);
         printf("@");
         gotoxy(d,f);
         printf("%c",1);
         }}}

int space::atira (){
          int s,r;
          s=y-2;
          r=x;
          while(s>=1){
                     
                     if(s>1){
                             gotoxy(r,s);
                             printf("*");
                             _sleep(20);
                             gotoxy(r,s+1);
                             printf(" ");
                             s--;
                             }
                     if(s==1){
                             gotoxy(r,s);
                             printf(" ");
                             gotoxy(r,s+1);
                             printf(" ");
                             s--;
                             }                             
          }
}


int space::teclas (){
        
    if (kbhit ()){
        tecla = getch ();                            // a = 97 d = 100 w = 119 exc 27

            switch (tecla) 
         {
                case 97:
                     movimentar_esquerda();
                                         break;
                case 100:
                     movimentar_direita();
                                         break;
                case 119:
                     atira();
                     break;
         }
     }
}   



int main(){
    
    space i;
    x=10;
    y=20;
    
    gotoxy(x,y);
    printf("x");
    invaders ();
    while(tecla!='p')
      {
                     
                     i.teclas();               
                     
     }

    
}
